Image processing apparatus, image processing method, and image processing program

ABSTRACT

An image processing apparatus includes a command analyzing unit obtaining color information of each endpoint of an object by analyzing a drawing command, a draw processing unit obtaining the color information of successive scanned points inside the object through incremental interpolation of the color information, thereby successively producing the color information for an entirety of the object, and an image processing unit processing the color information outputted by the draw processing unit.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to an image processing apparatus,an image processing method, and an image processing program.

[0003] 2. Description of the Related Art

[0004] In recent years, owing that the functions for color DTP and wordprocessors have been improved, not only text but complicated objectshave also become easy to create. The gradation function is one of suchfunctions often used for improving the appearance of documents. Oneconventional method known for creating drawing data is to create agradation pattern beforehand, and then masking objects in correspondencewith the gradation.

[0005] However, with a gradient fill shown in FIG. 30, creating agradation pattern beforehand may be difficult, in a case where drawingis performed by defining three different colors on each end point of atriangle, and interpolating the inside thereof.

[0006] As for another method, in a case where the direction forgradation (halftoning) is horizontal, objects divided into differentshades can be overlapped onto each other. This may also be performed forthe vertical direction.

[0007] Nevertheless, using software, for example, to compensate theinside of the three end points in a manner shown in FIG. 30 requireslarge amounts of processing.

[0008] In order to solve the aforementioned problem, Japanese Patent No.2897765 discloses a method of drawing a gradation object directlyinstead of drawing a gradation object through reception of PDL commands,and thus referring to a gradation adjustment table for adjusting thedifference between density obtained by computation and gradation duringprinting.

[0009] Further, a CRT display providing high gradient can, in general,express color gradation easily, while a printer providing low gradient,on the other hand, has difficulty in outputting color gradation,especially neutral colors (colors with slight gradation). In order toovercome such difficulty, Japanese Laid-Open Patent Application No.9-190538 discloses a method where drawing is performed by dividing agradating portion into plural objects having a width of 2 pixels ormore.

[0010] Japanese Laid-Open Patent Application No. 2001-101431 discloses asquare-shaped gradient fill in which horizontal lines that have sameshade are obtained, in a case where shades are different in a verticaldirection, by copying a previously drawn line, so as to increaseprocessing speed.

[0011] In the field of 3D graphics, RGB colors are distributed to theendpoints of a triangular polygon, and compensated according to a planeequation. Japanese Laid-Open Patent Application No. 11-15997 discloses amapping process by distributing addresses of a mapping pattern to eachend point of a polygon and interpolating the inside of the polygon.

[0012] Conventionally, forming a gradation pattern beforehand andmasking an object according to the gradation pattern is known as amethod for generating drawing data. This method, however, requires largememory space for purposes of, for example, forming large gradationpatterns, or performing a masking operation.

[0013] Furthermore, it may be difficult to form a gradation patternbeforehand by employing a method of defining different colors to threeendpoints of a triangle and interpolating the inside of the triangle(See gradient fill of FIG. 30).

[0014] Furthermore, gradation (halftoning) for a single direction(horizontally or vertically) can be performed by dividing gradation intoobjects having different shades and overlapping the objects on top ofeach other (e.g. FIG. 31). In this case, however, drawing process isconducted redundantly for many portions; therefore, much memory accessis required.

[0015] In the aforementioned Japanese Patent No. 2897765, shades arecreated by performing linear conversion from the left side of an objectto the right side of the object and interpolating in a horizontaldirection; nevertheless, the manner of how shades are interpolated isnot clearly described. Furthermore, in the case where interpolation isperformed in accordance with the left and right sides of the object, thevalue of interpolation may change drastically when there is a change inone of the sides (as the object shown in FIG. 32); this causes a borderto be noticeable at the line of the change and deteriorate imagequality.

[0016] Meanwhile, in a case where a object that is targeted for drawingis rotated, for example, when intensifying the paper employed forprinting or when changing the direction of the paper, the aforementionedmethod may cause gradation of the rotated object to be differentcompared to that of the object before the rotation, and therebydeteriorate image quality (This is due to the fact that the differencein gradation is not obtained by using a plane equation in accordancewith all of the endpoints of the object. Therefore, the aforementionedmethod may lack precision in forming gradation. Further, the trapezoidemployed as an example in the conventional method cannot form a planeand is unable to create gradation suitably unless it is divided intotriangles). Furthermore, a gradation adjustment table is required to beprovided in the RAM inside the hardware of LSI for increasing processingspeed, to thereby increase the size of hardware of the LSI and its cost.

[0017] In the aforementioned Japanese Patent Laid-Open Application No.09-190538 where gradation portion is divided into a plurality of objectsin sizes of no less than 2 pixels, calculation may be simple whengradation is either in a horizontal direction or a vertical direction(although it is still necessary to perform much calculation forobtaining the slope of the sides of the respective divided objects);however, employing the aforementioned method in obtaining a gradation,for example, shown in FIG. 30, shall require too much calculation.

[0018] The aforementioned Japanese Patent Laid-Open Application No.2001-101431 is effective only when gradation is in a single horizontaldirection, and it cannot be applied to a gradient fill where threeendpoints of a triangle (e.g. FIG. 30) are respectively defined withdifferent colors.

SUMMARY OF THE INVENTION

[0019] It is a general object of the present invention to provide animage processing apparatus, an image processing method, and an imageprocessing program, that substantially obviate one or more of theproblems caused by the limitations and disadvantages(of the related art.

[0020] More specifically, it is an object of the present invention toprovide an image processing apparatus, an image processing method, andan image processing program to require no large memory space such asspace for expanding a large gradation pattern or space for conducting amasking process to drawing data.

[0021] It is also an object of the present invention to provide an imageprocessing apparatus, an image processing method, and an imageprocessing program that suitably output neutral colors (colors withslight gradation) even with a low gradient printer by employing a colorinformation interpolating unit which controls changes in color byobtaining changes of resolution (mesh) with reference to prescribedsmallest (minimum) color lengths in a vertical and horizontal directionof a square surrounding an object (Thereby, while the sides of theobject is computed with an ordinary resolution, resolution can bechanged for the object having its inside filled).

[0022] It is also an object of the present invention to provide an imageprocessing apparatus, an image processing method, and an imageprocessing program that increase processing speed of a (gradient fill)drawing process by operating a setup unit, a start point computationunit, a horizontal color information interpolating unit, a colorconversion unit, and a halftone unit, in parallel.

[0023] Features and advantages of the present invention will be setforth in the description which follows, and in part will become apparentfrom the description and the accompanying drawings, or may be learned bypractice of the invention according to the teachings provided in thedescription. Objects as well as other features and advantages of thepresent invention will be realized and attained by an image processingapparatus, an image processing method, and an image processing programparticularly pointed out in the specification in such full, clear,concise, and exact terms as to enable a person having ordinary skill inthe art to practice the invention.

[0024] To achieve these and other advantages and in accordance with thepurpose of the invention, as embodied and broadly described herein, theinvention provides an image processing apparatus including: a commandanalyzing unit obtaining color information of each endpoint of an objectby analyzing a drawing command; a draw processing unit obtaining thecolor information of successive scanned points inside the object throughincremental interpolation of the color information, thereby successivelyproducing the color information for an entirety of the object; and animage processing unit processing the color information outputted by thedraw processing unit.

[0025] Furthermore, with the image processing apparatus according to thepresent invention, the draw processing unit may include: a setup unitobtaining differential coefficients of the color information inhorizontal and vertical directions of the object, with a plane equationof the object with respect to the color information of each endpoint ofthe object; a start point computing unit obtaining X-Y coordinates andthe color information of a start point situated on a left or right sideof the object and on a given horizontal line by referring to said eachend point and the differential coefficients; and a horizontal colorinformation interpolating unit interpolating color information along thegiven horizontal line in accordance with the X-Y coordinates and thecolor information of the start point and the differential coefficientsin the horizontal direction.

[0026] Furthermore, with the image processing apparatus according to thepresent invention, the setup unit may compute respective colorinformation corresponding to said each endpoint in parallel.

[0027] Furthermore, with the image processing apparatus according to thepresent invention, the start point computing unit may include: avertical X value interpolating unit interpolating an X value in thevertical direction by referring to said each end point; and a verticalcolor information interpolating unit interpolating color information inthe vertical direction by referring to said each end point.

[0028] Furthermore, with the image processing apparatus according to thepresent invention, the horizontal color information interpolating unitmay interpolate respective color information corresponding to the colorinformation obtained by the start point computing unit, in parallel.

[0029] Furthermore, with the image processing apparatus according to thepresent invention, the draw processing unit may further include a colorinformation interpolating unit controlling change of color byinterpolating color in horizontal and vertical directions in accordancewith a mesh, which is shaped as a square surrounding the object and isdivided into minimal color lengths in vertical and horizontaldirections.

[0030] Furthermore, with the image processing apparatus according to thepresent invention, the image processing unit may include a colorconversion unit converting color information obtained from the drawprocessing unit.

[0031] Furthermore, with the image processing apparatus according to thepresent invention, the image processing unit may include a halftone unithalftoning the color information converted in the color conversion unit.

[0032] Furthermore, with the image processing apparatus according to thepresent invention, the halftone unit may include a fixed length datageneration unit converting the halftoned color information into wordlength for a band data storage unit.

[0033] The present invention also provides an image processing methodcomprising the steps of: a) obtaining color information of each endpointof an object by analyzing a drawing command; b) obtaining the colorinformation of successive scanned points inside the object throughincremental interpolation of the color information, thereby successivelyproducing the color information for an entirety of the object; and c)processing the color information outputted in step b).

[0034] Furthermore, with the image processing method according to thepresent invention, step b) may include the steps of: d) obtainingdifferential coefficients of the color information in horizontal andvertical directions of the object, with a plane equation of the objectwith respect to the color information of each endpoint of the object; e)obtaining X-Y coordinates and the color information of a start pointsituated on a left or right side of the object and on a given horizontalline by referring to said each end point and the differentialcoefficients; and f) interpolating unit interpolating color informationalong the given horizontal line in accordance with the X-Y coordinatesand the color information of the start point and the differentialcoefficients in the horizontal direction.

[0035] Furthermore, with the image processing method according to thepresent invention, respective color information corresponding to saideach endpoint may be computed in parallel in step d).

[0036] Furthermore, with the image processing method according to thepresent invention, step e) may include the steps of: g) interpolating anX value in the vertical direction by referring to said each end point;and h) interpolating color information in the vertical direction byreferring to said each end point.

[0037] Furthermore, with the image processing method according to thepresent invention, wherein respective color information corresponding tothe color information obtained in step e), may be interpolated inparallel.

[0038] Furthermore, with the image processing method according to thepresent invention, step b) may further include a step of: i) controllingchange of color by interpolating color in horizontal and verticaldirections in accordance with a mesh, which is shaped as a squaresurrounding the object and is divided into minimal color lengths invertical and horizontal directions.

[0039] Furthermore, with the image processing method according to thepresent invention, step c) may include a step of: j) converting colorinformation obtained in step b).

[0040] Furthermore, with the image processing method according to thepresent invention, step c) may include a step of: k) halftoning thecolor information converted in step j).

[0041] Furthermore, with the image processing method according to thepresent invention, step k) may include a step of: l) converting thehalftoned color information into word length for a step of storing banddata.

[0042] The present invention also provides an image processing programincluding the functions of: a) obtaining color information of eachendpoint of an object by analyzing a drawing command; b) obtaining thecolor information of successive scanned points inside the object throughincremental interpolation of the color information, thereby successivelyproducing the color information for an entirety of the object; and c)processing the color information outputted in function b).

[0043] Furthermore, with the image processing program according to thepresent invention, function b) may include the functions of: d)obtaining differential coefficients of the color information inhorizontal and vertical directions of the object, with a plane equationof the object with respect to the color information of each endpoint ofthe object; e) obtaining X-Y coordinates and the color information of astart point situated on a left or right side of the object and on agiven horizontal line by referring to said each end point and thedifferential coefficients; and f) interpolating unit interpolating colorinformation along the given horizontal line in accordance with the X-Ycoordinates and the color information of the start point and thedifferential coefficients in the horizontal direction.

[0044] Furthermore, with the image processing program according to thepresent invention, respective color information corresponding to saideach endpoint may be computed in parallel in function d).

[0045] Furthermore, with the image processing program according to thepresent invention, function e) may include the functions of: g)interpolating an X value in the vertical direction by referring to saideach end point; and h) interpolating color information in the verticaldirection by referring to said each end point.

[0046] Furthermore, with the image processing program according to thepresent invention, respective color information corresponding to thecolor information obtained in function e), may be interpolated inparallel.

[0047] Furthermore, with the image processing program according to thepresent invention, function b) may further include a function of: i)controlling change of color by interpolating color in horizontal andvertical directions in accordance with a mesh, which is shaped as asquare surrounding the object and is divided into minimal color lengthsin vertical and horizontal directions.

[0048] Furthermore, with the image processing program according to thepresent invention, function c) may include a function of: j) convertingcolor information obtained in function b).

[0049] Furthermore, with the image processing program according to thepresent invention, function c) may include a function of: k) halftoningthe color information converted in function j).

[0050] Furthermore, with the image processing program according to thepresent invention, function k) may include a function of: l) convertingthe halftoned color information into word length for a function ofstoring band data.

[0051] Other objects and further features of the present invention willbe apparent from the following detailed description when read inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0052]FIG. 1 is a diagram for describing a mechanism of an image formingapparatus according to an embodiment of the present invention;

[0053]FIG. 2 is a block diagram showing an electric component controlunit of an image forming apparatus according to an embodiment of thepresent invention;

[0054]FIG. 3 is a diagram showing a flow of the procedures performedaccording to an embodiment of the present invention;

[0055]FIG. 4 is a block diagram showing a data processing conceptaccording to an embodiment of the present invention;

[0056]FIG. 5 is a diagram showing a concept of a procedure for drawingan object in a band memory area according to an embodiment of thepresent invention;

[0057]FIG. 6 is a diagram showing a format of a main memory according toan embodiment of the present invention;

[0058]FIG. 7 is a diagram showing a flow of draw processing according toan embodiment of the present invention;

[0059]FIG. 8 is a block diagram of the drawing unit shown in FIG. 2;

[0060]FIG. 9 is a flow chart showing a process performed with a drawingunit according to an embodiment of the present invention;

[0061]FIG. 10 is a block diagram showing a structure of a drawprocessing unit shown in FIG. 8;

[0062]FIG. 11 is a flow chart showing a process performed with a drawprocessing unit according to an embodiment of the present invention;

[0063]FIG. 12 is a block diagram showing a structure of a triangle setupunit shown in FIG. 10;

[0064]FIG. 13 is a block diagram showing a structure of a generationunit 1201 shown in FIG. 12 that generates difference R for a horizontaldirection;

[0065]FIG. 14 is a block diagram showing a structure of a generationunit 1202 shown in FIG. 12 that generates difference R for a verticaldirection;

[0066]FIG. 15 is a block diagram showing a structure of a horizontal RGBDDA unit 1006 shown in FIG. 10;

[0067]FIG. 16 is a block diagram showing a structure of an initial pointgeneration unit 1003 shown in FIG. 10;

[0068]FIG. 17 is a block diagram showing a structure of a horizontalXDDA unit 1005 shown in FIG. 10;

[0069]FIG. 18 is a block diagram showing a structure of a memory addressgeneration unit 1008 shown in FIG. 10;

[0070]FIG. 19 is a block diagram showing a structure of an RGBinterpolating unit 1004 shown in FIG. 10;

[0071]FIG. 20 is a block diagram showing a structure of an imageprocessing unit 206 shown in FIG. 2;

[0072]FIG. 21 is a flowchart showing a process performed by an imageprocessing unit according to an embodiment of the present invention;

[0073]FIG. 22 is a block diagram showing a structure of a colorconversion processing unit 2001 shown in FIG. 20;

[0074]FIG. 23 is a flowchart showing a process performed by a colorconversion processing unit according to an embodiment of the presentinvention;

[0075]FIG. 24 is block diagram showing a structure of a halftone unit2002 shown in FIG. 20;

[0076]FIG. 25 is a flowchart showing a process performed by a halftoneunit according to an embodiment of the present invention;

[0077]FIG. 26 is a block diagram showing a structure of a fixed lengthdata generation unit 2408 shown in FIG. 24;

[0078]FIG. 27 is a diagram showing a relation between coordinates of atriangle on a plane, color information, and difference;

[0079]FIG. 28 is a diagram showing a relation between a triangle,minimum color length (DDX, DDY), and maximum and minimum values of X andY;

[0080]FIG. 29 is a diagram showing a process of interpolating the sidesof a triangle from initial point (X0, Y0), and drawing the triangleaccording to an embodiment of the present invention;

[0081]FIG. 30 is a diagram showing an example of a triangle gradientfill;

[0082]FIG. 31 is a diagram showing an example of forming a gradationfrom plural gradation patterns; and

[0083]FIG. 32 is a diagram showing a result of gradient fill in a casewhere interpolation is performed according to the left and right sidesof a triangle.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0084] In the following, embodiments of the present invention will bedescribed with reference to the accompanying drawings.

[0085] [Structure of Image Forming Apparatus]

[0086]FIG. 1 is a diagram showing a structure of an image formingapparatus according to an embodiment of the present invention. The imageforming apparatus is a color printer of a four drum tandem type whichforms images in four colors (Y, M, C, K) with separate image formingunits 1Y, 1M, 1C, 1K, and combines the four color images.

[0087] Each of the image forming units 1Y, 1M, 1C, and 1K has, forexample, OPC (Organic Photoconductor) drums 2Y, 2M, 2C, 2K with a smalldiameter (functioning as image bearing members); charge rollers 3Y, 3M,3C, 3K (functioning as charging units) disposed at an upstream sidesurrounding the OPC drums 2Y, 2M, 2C, 2K; development units 4Y, 4M, 4C,4K forming toner images for each of the colors Y, M, C, K by developingeach of the electrostatic latent images on the OPC drums 2Y, 2M, 2C, 2Kwith a developer; cleaning units 5Y, 5M, 5C, 5K; and discharge units 6Y,6M, 6C, 6K.

[0088] Toner bottles 7Y, 7M, 7C, 7K supplying Y toner, M toner, C toner,and K toner to each of the developing units 4Y, 4M, 4C, and 4K aredisposed at the side of each of the developing units 4Y, 4M, 4C, and 4K.Further, each of the image forming units 1Y, 1M, 1C, 1K includesindependent optic writing units 8Y, 8M, 8C, and 8K. The optic writingunits 8Y, 8M, 8C, and 8K including, optic components, for example, alaser diode (LD) light source 9Y, 9M, 9C, 9K (serving as a lightsource), collimator lens 10Y, 10M, 10C, 10K, and fθ lens 11Y, 11M, 11C,11K, and a deflection scan unit such as polygon mirrors 12Y, 12M, 12C,12K, or reflection mirrors 13Y, 13M, 13C, 13K, 14Y, 14M, 14C, 14K.

[0089] The image forming units 1Y, 1M, 1C, 1K are disposed vertically,and a transfer belt unit 15 is disposed on its right side in a mannercontacting the OPC drums 2Y, 2M, 2C, 2K. In the transfer belt unit 15, atransfer belt 16 is stretched by rollers 17-20 and rotated by a drivingsource (not shown). A sheet feeding tray containing transfer sheet(transfer medium) is disposed at a lower portion of the image formingapparatus. A fixing unit 22, a sheet eject roller 23, and a sheet ejecttray 24 are disposed at an upper portion of the image forming apparatus.

[0090] In a procedure of forming an image in each of the image formingunits 1Y, 1M, 1C, and 1K, the OPC drums 2Y, 2M, 2C, and 2K are rotatedby a driving source (not shown), are uniformly charged by the chargerollers 3Y, 3M, 3C, 3K, and are subjected to optic writing by the opticwrite units 8Y, 8M, 8C, 8K in accordance with image data for each color,to thereby form electro latent images on the respective OPC drums 2Y,2M, 2C, and 2K.

[0091] The electro latent images on the respective OPC drums 2Y, 2M, 2C,and 2K are developed into respective toner images corresponding to Y, M,C, K by the developing units 4Y, 4M, 4C, 4K. The transfer sheet is,meanwhile, supplied from the sheet feeding tray 21 in a horizontaldirection by a sheet feeding roller 25, and is conveyed to the imageforming units 1Y, 1M, 1C, and 1K in a vertical direction by a conveyingunit. The transfer belt 16,absorbing the transfer sheet with staticelectricity, conveys the transfer sheet. The transfer sheet conveyed onthe transfer belt 16 is applied with transfer bias by a transfer biassupply unit (not shown) for allowing the respective Y, M, C, K tonerimages on the OPC drums 2Y, 2M, 2C, 2K to be sequentially transferredthereon in an overlapped manner, thereby resulting to the formation of afull color image on the transfer sheet. The transfer sheet has the fullcolor image fixed thereon by a fixing unit 22, and is ejected from thesheet eject tray 24 by a sheet eject roller 23.

[0092] The aforementioned procedure is controlled by a control unit 26.

[0093] [Structure of Control Unit]

[0094]FIG. 2 is a block diagram of the control unit 26 shown in FIG. 1.

[0095] Numeral 201 is a CPU which performs the overall controls for thecolor printer. Numeral 202 is a CPU interface that is connected to amemory arbiter (memory controller) 203 for serving as an interfacebetween the CPU 201 and the memory controller 203. The memory arbiter203 controls a main memory 224, and controls the transfer between themain memory 224 and, for example, the CPU 201, a local bus interface204, decoding units 209 to 212, a draw processing unit 205, an imageprocessing unit 206, and a encoding unit 207.

[0096] The local bus interface 204 serves as an interface for a ROM 218and/or a panel controller 217 with respect to, for example, the mainmemory 224.

[0097] The draw processing unit 205 receives a drawing command from theCPU 201, and successively transfers memory addresses and colorinformation (e.g. RGB, gradation) in a horizontal direction to the imageprocessing unit 206.

[0098] The image processing unit 206 receives the memory addresses andthe color information (RGB) from the draw processing unit 205, conductsimage processing, and performs drawing with respect to band memoryspaces in the main memory 224.

[0099] The encoding unit 207 encodes the band data in the main memory224 and transfers the encoded data to the main memory 224.

[0100] Numeral 208 is a communication controller which is connected to anetwork for receiving various data and commands therefrom, and also tovarious controllers via the memory arbiter 203.

[0101] The decoding units 209 through 212 receive encoded data, encodedby encoding unit 207, corresponding to each C, M, Y, K, then decode theencoded data, and then transfer the decoded data to respective enginecontrollers 213 through 216 corresponding to C, M, Y, K.

[0102] Numeral 218 is a ROM which stores, for example, font information(e.g. letters), and programs of the CPU 201.

[0103] Numeral 217 is a panel controller which controls a panel 219.

[0104] The panel 219 informs operations of a user to, for example, acopy unit.

[0105] The respective engine controllers 213 through 216 receives imagesfrom the decoding parts 209 through 212 and transfers the images torespective printer engines 220, 221, 222, and 223 corresponding to C, M,Y, K. The main memory 224 stores, for example, code data of the encodingunit 209, programs of the CPU 201, font data, and other various data.

[0106] [Operation]

[0107]FIG. 3 shows an overall operation flow of an image processingapparatus according to an embodiment of the present invention.

[0108] In step S301, the CPU 201 shown in FIG. 2 generates a drawingcommand and transfers the drawing command to the draw processing unit205.

[0109] In step S302, the draw processing unit 205 shown in FIG. 2successively obtains, addresses of a horizontal direction of the bandmemory space and color information (RGB) values, in a vertical directionof an object, and then transfers the obtained addresses and colorinformation (RGB) values to the image processing unit 206 shown in FIG.2.

[0110] In step S303, the image processing unit 206 shown in FIG. 2conducts image processing and draws to the CMYK binary band memoryspaces shown in FIG. 5.

[0111]FIG. 4 is a conceptual diagram showing the processes of an imageprocessing apparatus according to an embodiment of the presentinvention.

[0112] Numeral 401 is a CPU which transfers a drawing command to adrawing unit 402, and performs a drawing process on halftoned bandmemory (main memory) 404 corresponding to C, M, Y, K.

[0113] The drawing unit 402 receives the drawing command from the CPU401, analyzes the command, scans a graphic object successively in ahorizontal direction for obtaining addresses in the band memory 404 andcolor information (RGB), and transfers the obtained addresses and colorinformation (RGB) to the image processing unit 403.

[0114] The image processing unit 403 receives respective originaddresses and the thresholds of the C,M,Y,K band memories 404 from theCPU 401, receives the addresses and color information (RGB) from thedraw processing unit 402, and performs a color conversion process(conversion into CMYK value). After the color conversion process(conversion to CMYK value), the image processing unit 403 generateshalftoned band data to the respective band memory 404 corresponding toC,M,Y,K.

[0115] The band memory (main memory) 404 serves to store, for example,page code data corresponding to C,M,Y,K and halftoned band data.

[0116] Numeral 405 is an encoding unit which encodes halftoned band datacorresponding to C,M,Y,K and transfers the data to respective page codememory spaces corresponding to C,M,Y,K in the main memory 404.

[0117] Numerals 406 through 409 are decoding units which synchronizewith respective printer engines 414 through 417 corresponding toC,M,Y,K; read and decode necessary codes of C,M,Y,K from the main memory404; and transfer the decoded codes to respective engine controllers 410through 413 corresponding to C,M,Y,K.

[0118] The C,M,Y,K engine controllers 410 through 413 receive codes fromthe decoding units 406 through 409 and control the respective printerengines 414 through 417.

[0119]FIG. 5 is a conceptual diagram of a process performed according toan embodiment of the present invention. The CPU 201 shown in FIG. 2receives a drawing command, transfers the drawing command to the drawprocessing unit 205. The draw processing unit 205 performs a drawingprocess and transfers processed results to the image processing unit 206shown in FIG. 2. The image processing unit 206 draws an object to ahalftoned band memory corresponding to C,M,Y,K in the main memory 224shown in FIG. 2.

[0120] [Main Memory Format]

[0121]FIG. 6 shows a format of a main memory according to an embodimentof the present invention.

[0122] With reference to FIG. 6, the C, M, Y, K binary band memoryspaces are spaces which store image processed (processed into, forexample, binary value, quaternary value, or hexadecimal value) bandinformation corresponding to C, M, Y, K.

[0123] The cyan binary band memory space is a space storing halftonedencoded data of a cyan band that amount to plural pages.

[0124] The magenta binary band memory space is a space storing halftonedencoded data of a magenta band that amount to plural pages.

[0125] The yellow binary band memory space is a space storing halftonedencoded data of a yellow band that amount to plural pages.

[0126] The black binary band memory space is a space storing halftonedencoded data of a black band that amount to plural pages.

[0127] The program space is a space storing various programs of a CPU.

[0128] [Drawing Process]

[0129]FIG. 7 shows a flow of a drawing process according to anembodiment of the present invention.

[0130] The CPU 201 transfers a drawing command to the draw processingunit 205 ({circle over (1)}).

[0131] The draw processing unit 205 analyzes the drawing command andtransfers color information of an object and a memory address thereof tothe image processing unit 206 ({circle over (2)}).

[0132] The image processing unit 206 performs image processing to thecolor information from the draw processing unit 205, and provides theimage processed data to the C, M, Y, K binary band memory spaces of themain memory ({circle over (3)}).

[0133] [Drawing Unit]

[0134]FIG. 8 is a block diagram of the draw processing unit 205 shown inFIG. 2.

[0135] Numeral 801 is a memory arbiter interface serving as an interfacewith respect to the memory arbiter 203 shown in FIG. 2. The memoryarbiter interface 801 receives a drawing command from the CPU 201 shownin FIG. 2 and transfers the drawing command to a draw processing unit802. In FIG. 8, the memory arbiter 203 receives a request signalrequesting access to the main memory 224. The memory arbiter 203 returnsan acknowledge signal for informing that preparation is made foraccessing to the main memory 224.

[0136] The draw processing unit 802 receives the drawing command fromthe CPU 201 shown in FIG. 2, analyzes the drawing command, and obtainsthe differential coefficients, for a horizontal direction (dRX, dGX,dBX) and a vertical direction (dRY, dGY, dBY), from a plane equation inaccordance with color information of each endpoint of a triangle object,to thereby successively obtain the memory addresses and colorinformation (RGB) in a horizontal direction, from a vertical direction,and transfer the obtained memory addresses for each pixel to the imageprocessing unit 206 shown in FIG. 2 in accordance with bandwidth of banddata and logical addresses (X0, Y0, X1, Y1, X2, Y2) of each endpoint ofa graphic shape.

[0137] In the block diagram of FIG. 8, numeral 803 is a parameterstorage unit for temporarily storing parameters of the draw processingunit 802. Numeral 804 is a controller for entirely controlling the drawprocessing unit 205.

[0138]FIG. 9 shows a processing flow of the drawing processing unitaccording to an embodiment of the present invention.

[0139] Step S901: Set bandwidth of respective C,M,Y,K band memory spacesin a main memory to a parameter storage unit.

[0140] Step S902: Set a color conversion table for a color conversionunit.

[0141] Step S903: Set threshold size of dither for a halftone unit.

[0142] Step S904: Set values of DDX and DDY for an RGB interpolatingunit.

[0143] Step S905: Read drawing command.

[0144] Step S906: Conduct drawing process.

[0145] Step S907: Conduct color conversion.

[0146] Step S908: Conduct halftone process (halftoning).

[0147] Step S909: Withdraw from loop after all drawing commands areconducted.

[0148] [Draw Processing Unit]

[0149]FIG. 10 is a block diagram of the draw processing unit 802 shownin FIG. 8.

[0150] Numeral 1001 is a command analyzing unit which analyzes a drawingcommand from the CPU 201 shown in FIG. 2, obtains coordinates (X0, Y0,X1, Y1, X2, Y2) and color information (R0, G0, B0, R1, G1, B1, R2, G2,B2) for each endpoint of a triangle, and transfers the coordinates andthe color information to, for example, a triangle setup unit 1002, astart point generation unit 1003, and an RGB interpolating unit 1004.

[0151] The triangle setup unit 1002 obtains differential coefficientsfor a horizontal direction (dRX, dGX, dBX) and a vertical direction(dRY, dGY, dBY) from a plane equation of a triangle in accordance withthe coordinates and color information of each endpoint obtained from thecommand analyzing unit 1001, and transfers the obtained differentialcoefficients to the start point generation unit 1003 and the RGBinterpolating unit 1004.

[0152] Obtaining the differential coefficients for the horizontal andvertical directions from the plane equation of a triangle is describedwith reference to FIG. 27 and Equation 1 given below. $\begin{matrix}{{\frac{R}{X} = \frac{{\left( {{R2} - {R0}} \right)\left( {{X1} - {X0}} \right)} + {\left( {{R1} - {R0}} \right)\left( {{X2} - {X0}} \right)}}{{\left( {{Y2} - {Y0}} \right)\left( {{X1} - {X0}} \right)} + {\left( {{Y1} - {Y0}} \right)\left( {{X2} - {X0}} \right)}}}{\frac{R}{Y} = \frac{{\left( {{R2} - {R0}} \right)\left( {{Y1} - {Y0}} \right)} + {\left( {{R1} - {R0}} \right)\left( {{Y2} - {Y0}} \right)}}{{\left( {{Y2} - {Y0}} \right)\left( {{X1} - {X0}} \right)} + {\left( {{Y1} - {Y0}} \right)\left( {{X2} - {X0}} \right)}}}{\frac{G}{X} = \frac{{\left( {{G2} - {G0}} \right)\left( {{X1} - {X0}} \right)} + {\left( {{G1} - {G0}} \right)\left( {{X2} - {X0}} \right)}}{{\left( {{Y2} - {Y0}} \right)\left( {{X1} - {X0}} \right)} + {\left( {{Y1} - {Y0}} \right)\left( {{X2} - {X0}} \right)}}}{\frac{G}{Y} = \frac{{\left( {{G2} - {G0}} \right)\left( {{Y1} - {Y0}} \right)} + {\left( {{G1} - {G0}} \right)\left( {{Y2} - {Y0}} \right)}}{{\left( {{Y2} - {Y0}} \right)\left( {{X1} - {X0}} \right)} + {\left( {{Y1} - {Y0}} \right)\left( {{X2} - {X0}} \right)}}}{\frac{B}{X} = \frac{{\left( {{B2} - {B0}} \right)\left( {{X1} - {X0}} \right)} + {\left( {{B1} - {B0}} \right)\left( {{X2} - {X0}} \right)}}{{\left( {{Y2} - {Y0}} \right)\left( {{X1} - {X0}} \right)} + {\left( {{Y1} - {Y0}} \right)\left( {{X2} - {X0}} \right)}}}{\frac{B}{Y} = \frac{{\left( {{B2} - {B0}} \right)\left( {{Y1} - {Y0}} \right)} + {\left( {{B1} - {B0}} \right)\left( {{Y2} - {Y0}} \right)}}{{\left( {{Y2} - {Y0}} \right)\left( {{X1} - {X0}} \right)} + {\left( {{Y1} - {Y0}} \right)\left( {{X2} - {X0}} \right)}}}} & {{Equation}\quad 1}\end{matrix}$

[0153] The start point generation unit 1003 determines a left side ofthe triangle (in a case where the triangle is a counterclockwisetriangle as shown in FIG. 29) in accordance with the coordinates of eachendpoint of the triangle (X0, Y0, X1, Y1, X2, Y2) received from thecommand analyzing unit 1001, successively obtains the values of startpoint X and R,G,B values in a horizontal direction from a verticaldirection of the left side, and transfers the obtained values to ahorizontal X DDA unit 1005 and a horizontal RGB DDA unit 1006.

[0154] The RGB interpolating unit 1004 forms a mesh by dividing a squaresurrounding the triangle (See FIG. 28) into units of minimum colorlength DDY in a vertical direction and minimum color length DDX in ahorizontal direction in accordance with the coordinates of each of theendpoints of the triangle (X0, Y0, X1, Y1, X2, Y2) received from thecommand analyzing unit 1001. Based on the mesh, the RGB interpolatingunit 1004 sends a Y direction update signal to the start pointgeneration unit 1003 when the values of horizontal start point X and Youtput from the start point generation unit 1003, crosses over the mesh(border) in a vertical direction, to thereby update the RGB values for ahorizontal direction that are transferred from the start pointgeneration unit 1003 to the horizontal XDDA unit 1005 and the horizontalRGB DDA unit 1006.

[0155] Further, the RGB interpolating unit 1004 overlooks the X value ofeach horizontal pixel of the horizontal XDDA unit 1005 and sends an Xdirection update signal to an RGB switching unit 1007 when the X valuecrosses over the mesh (border) in a horizontal direction, to therebyrender the RGB switching unit 1007 to update the RGB value that isoutput from the horizontal RGB DDA 1006.

[0156] Although a typical computation is employed to compute resolutionfor the sides of the object, resolution can be modified for the objecthaving an inside thereof filled.

[0157] The horizontal XDDA unit 1005 receives horizontal start point Xvalue, Y value from the start point generation unit 1003, scans thetriangle in a horizontal direction, successively obtains the X values ofeach pixel by DDA (Digitial Differential Analysis), and transfers theobtained X values to the RGB interpolating unit 1004 and the memoryaddress generation unit 1008.

[0158] The horizontal RGB DDA unit 1006 receives differentialcoefficients dRX, dGX, dBX from the triangle setup unit 1002 and the RGBhorizontal start point values from the start point generation unit 1003,and interpolates the RGB of each pixel in the horizontal direction byDDA. The horizontal RGB DDA unit 1006, then, transfers the interpolatedRGB values to the RGB switching unit 1007.

[0159] The RGB switching unit 1007 updates the interpolated RGB valuesreceived from the horizontal RGB DDA unit 1006 according to the Xdirection update signals from the RGB interpolating unit 1004.

[0160] The memory address generation unit 1008 converts the logicalcoordinates (addresses) of the band memory from the horizontal XDDA (X,Y) into physical coordinates (addresses) of the band memory inaccordance with the bandwidth of the band memory, and transfers theconverted coordinates to the image processing unit interface 1009.

[0161] The image processing unit interface 1009 transfers the addressesfrom the memory address generation unit 1008 and the RGB values from theRGB switching unit 1007 to the image processing unit 206 shown in FIG.2.

[0162] Numeral 1010 is a controller which entirely controls the drawprocessing unit 205 shown in FIG. 2.

[0163] [Draw Processing Flow]

[0164]FIG. 11 shows a processing flow of a draw processing unitaccording to an embodiment of the present invention.

[0165] Step S1101: A command analyzing unit analyzes a drawing command,and obtains endpoints of a triangle (X0, Y0, X1, Y1, X2, Y2) and colorinformation of the endpoints (R0, G0, B0, R1, G1, B1, R2, G2, B2).

[0166] Step S1102: A triangle setup unit obtains differentialcoefficients for a horizontal direction dRX, dGX, dBX and differentialcoefficients for a vertical direction dRY, dGY, dBY.

[0167] Step S1103: Set initial value (Initialize).

[0168] Step S1104: A start point generation unit obtains a left side inaccordance with vectors of the sides of the triangle, and acquires thevalues of start points in a horizontal direction (XYRGB) of a verticaldirection IY of the left side.

[0169] Step S1105: An RGB interpolating unit determines whether thevalues of the start points crosses over boundaries of the square, whichsurrounds the triangle and is divided into prescribed units of minimumcolor length in a vertical direction DDY.

[0170] Step S1106: Update RGB start point value in horizontal directionof IY.

[0171] Step S1107: A horizontal XDDA unit obtains an X value in ahorizontal direction.

[0172] Step S1108: A horizontal RGB DDA unit obtains an RGB value in ahorizontal direction.

[0173] Step S1109: The RGB interpolating unit determines whether thevalues of the start points cross over boundaries of the square,surrounds the triangle and is divided into prescribed units of minimumcolor length in a horizontal direction DDX.

[0174] Step S1110: Update RGB value in a horizontal direction of IY.

[0175] Step S1111: Determine whether all pixels are processed in ahorizontal direction.

[0176] Step S1112: Add 1 to the value of IY.

[0177] Step S1113: Determine whether all pixels are processed in avertical direction.

[0178] [Triangle Setup Unit]

[0179]FIG. 12 is a block diagram of the triangle setup unit 1002 shownin FIG. 10.

[0180] Numeral 1201 is an R horizontal differential coefficientgeneration unit that generates the value of a differential coefficient(R) for a horizontal direction dRX from a plane equation of a triangle.

[0181] Numeral 1202 is an R vertical differential coefficient generationunit that generates the value of a differential coefficient (R) for avertical direction dRY from a plane equation of a triangle.

[0182] Numeral 1203 is a G horizontal differential coefficientgeneration unit that generates the value of a differential coefficient(G) for a horizontal direction dGX from a plane equation of a triangle.

[0183] Numeral 1204 is a G vertical differential coefficient generationunit that generates the value of a differential coefficient (G) for avertical direction dGY from a plane equation of a triangle.

[0184] Numeral 1205 is a B horizontal differential coefficientgeneration unit that generates the value of a differential coefficient(B) for a horizontal direction dBX from a plane equation of a triangle.

[0185] Numeral 1206 is a B vertical differential coefficient generationunit that generates the value of a differential coefficient (B) for avertical direction dBY from a plane equation of a triangle.

[0186] [Horizontal Differential Coefficient Generation Unit]

[0187]FIG. 13 is a block diagram showing the R horizontal differentialcoefficient generation unit 1201 shown in FIG. 12. The block diagramexpresses the equation of dR/dX in Equation 1 in the form of hardware.

[0188] [Vertical Differential Coefficient Generation Unit]

[0189]FIG. 14 is a block diagram showing the R vertical differentialcoefficient generation unit 1202 shown in FIG. 12. The block diagramexpresses the equation of dR/dY in Equation 1 in the form of hardware.

[0190] [Horizontal RGB DDA Unit]

[0191]FIG. 15 is a block diagram showing the horizontal RGB DDA unit1006 shown in FIG. 10.

[0192] Numerals 1501 through 1503 are registers which store start pointvalues of RGB values in a horizontal direction from the start pointgeneration unit 1003 shown in FIG. 10.

[0193] Numerals 1504 to 1506 are registers which store differentialcoefficients of RGB values in a horizontal direction from the trianglesetup unit 1002 shown in FIG. 10.

[0194] Numerals 1507 through 1509 are adders which conduct addition forperforming respective DDA processing for R, G, and B.

[0195] Numerals 1510 through 1512 are frame memory address multiplexers(MUX) which transfer the start point values of RGB 1501 through 1503 tothe registers 1513 through 1515 as initial values in the respective DDAprocessing for R, G, and B, and then transfers the output of the adders1507 through 1509 during the DDA processing to the registers 1513through 1515.

[0196] The registers 1513 through 1515 store process results of therespective DDA processing for R, G, and B.

[0197] [Start Point Generation Unit]

[0198]FIG. 16 shows a block diagram of the start point generation unit1003 shown in FIG. 10.

[0199] Numeral 1601 is a left side searching unit which determines aleft side by referring to the vectors of endpoints of the sides of atriangle, transfers a start point (X, Y) and an end point (X, Y) to a Xdifferential coefficient computing unit 1602, and transfers values of X,Y to the registers 1603 and 1604.

[0200] The process is continued until there are no more left sidesremaining.

[0201] The X differential coefficient computation unit 1602 receives thestart point (X, Y) and the terminating point (X, Y) from the left sidesearching unit 1601, obtains the differential coefficient in thevertical direction (terminating point X−start point X)/(terminatingpoint Y−start point Y), and transfers the obtained differentialcoefficient to the register 1605.

[0202] The register 1603 stores the value of the start point X from theleft side searching unit 1601.

[0203] The register 1604 stores the value of the start point Y from theleft side searching unit 1601.

[0204] The register 1605 stores the value of the differentialcoefficient X from the X differential coefficient computing unit 1602.

[0205] The adder 1606 performs the adding process of the DDA for X in avertical direction.

[0206] The adder 1607 performs the adding process of the DDA for Y in ahorizontal direction.

[0207] Numeral 1608 is a frame memory address multiplier (MUX) whichtransfers the start point values X of the register 1603 to a register1610 as initial values in the DDA processing for X in a verticaldirection, and then, during the DDA processing, transfers the output ofthe adders 1606 to the register 1610.

[0208] Numeral 1609 is an MUX (frame memory address multiplexer) whichtransfers the start point values of Y of the register 1604 to theregister 1611 as initial values in the DDA processing for Y in avertical direction, and then, during the DDA processing, transfers theoutput of the adders 1606 to the register 1611.

[0209] The register 1610 stores process results of the DDA processing ofX in the vertical direction.

[0210] The register 1611 stores process results of the DDA processing ofY in the vertical direction.

[0211] Numeral 1612 is a subtractor which subtracts the value of thestart point X from the process results of the DDA processing of X in avertical direction 1610, obtains X differential coefficient from thestart point of the left side that is being subjected to processing, andtransfers the obtained X differential coefficient to the multipliers ofthe RGB interpolating units 1615, 1617, and 1619.

[0212] Numerals 1614 through 1622 are RGB interpolating units whichperform plane interpolation in accordance with the differentialcoefficients in the X, Y directions obtained in 1612 and 1613, and thedifferential coefficients obtained by the triangle setup unit 1002 inFIG. 10. The RGB interpolating units 1614 through 1622, thereby, obtainan RGB start point of the left side for the horizontal direction.

[0213] Numeral 1614 is a multiplier which multiplies the differentialcoefficient value for the horizontal direction dRX obtained from thetriangle setup unit 1002 shown in FIG. 10 and the differentialcoefficient value for the vertical direction X obtained from thesubtractor 1612, and transfers the multiplication result to the adder1620.

[0214] Numeral 1615 is a multiplier which multiplies the differentialcoefficient value for the horizontal direction dRY obtained from thetriangle setup unit 1002 shown in FIG. 10 and the differentialcoefficient value for the vertical direction Y obtained from thesubtractor 1613, and transfers the multiplication result to the adder1620.

[0215] Numeral 1616 is a multiplier which multiplies the differentialcoefficient value for the horizontal direction dGX obtained from thetriangle setup unit 1002 shown in FIG. 10 and the differentialcoefficient value for the vertical direction X obtained from thesubtractor 1612, and transfers the multiplication result to the adder1621.

[0216] Numeral 1617 is a multiplier which multiplies the differentialcoefficient value for the horizontal direction dGY obtained from thetriangle setup unit 1002 shown in FIG. 10 and the differentialcoefficient value for the vertical direction Y obtained from thesubtractor 1613, and transfers the multiplication result to the adder1621.

[0217] Numeral 1618 is a multiplier which multiplies the differentialcoefficient value for the horizontal direction dBX obtained from thetriangle setup unit 1002 shown in FIG. 10 and the differentialcoefficient value for the vertical direction X obtained from thesubtractor 1612, and transfers the multiplication result to the adder1622.

[0218] Numeral 1619 is a multiplier which multiplies the differentialcoefficient value for the horizontal direction dBY obtained from thetriangle setup unit 1002 shown in FIG. 10 and the differentialcoefficient value for the vertical direction Y obtained from thesubtractor 1613, and transfers the multiplication result to the adder1622.

[0219] The adder 1620 adds the multiplication results in 1614 and 1615

[0220] The adder 1621 adds the multiplication results in 1616 and 1617.

[0221] The adder 1622 adds the multiplication results in 1618 and 1619.

[0222] Numeral 1623 is a register which stores the value of theprocessed results for a vertical direction according to XDDA.

[0223] Numeral 1624 is a register which stores the value of theprocessed results for a vertical direction according to YDDA.

[0224] Numeral 1625 is a register which updates the resultant R valuefrom interpolating RGB of the left side for the vertical direction whenthe Y direction update signal from the RGB interpolating unit 1004 shownin FIG. 10 is in an “ON” state.

[0225] Numeral 1626 is a register which updates the resultant G valuefrom interpolating RGB of the left side for the vertical direction whenthe Y direction update signal from the RGB interpolating unit 1004 shownin FIG. 10 is in an “ON” state.

[0226] Numeral 1627 is a register which updates the resultant B valuefrom interpolating RGB of the left side for the vertical direction whenthe Y direction update signal from the RGB interpolating unit 1004 shownin FIG. 10 is in an “ON” state.

[0227] [Horizontal XDDA Unit]

[0228]FIG. 17 is a block diagram showing a horizontal XDDA unit 1005shown in FIG. 10.

[0229] Numeral 1701 is a register which stores start point value X for ahorizontal direction generated from the generation unit 1003 shown inFIG. 10.

[0230] Numeral 1702 is a register which stores start point value Y for ahorizontal direction generated from the generation unit 1003 shown inFIG. 10.

[0231] Numeral 1703 is an adder which conducts addition for performing aDDA process for X.

[0232] Numeral 1704 is an MUX which transfers the start point value Xstored in the register 1701 to a register 1705 as an initial value inthe DDA process for X, and then, during the DDA process, transfers theoutput of the adder 1703 to the register 1705.

[0233] The register 1705 stores process results of the DDA process forX.

[0234] [Memory Address Generation Unit]

[0235]FIG. 18 is a block diagram of the memory address generation unit1008 shown in FIG. 10.

[0236] Numeral 1801 is a register which stores X value output from thehorizontal X DDA unit 1005 shown in FIG. 10.

[0237] Numeral 1802 is a register which stores Y value output from thehorizontal X DDA unit 1005 shown in FIG. 10.

[0238] Numeral 1803 is a multiplier which multiplies the X value of theregister 1801 and bandwidth.

[0239] Numeral 1804 is an adder which adds the output from themultiplier 1803 to the Y value of the register 1802, thereby obtaining amemory address (physical address).

[0240] Numeral 1805 is a register which stores the obtained memoryaddress (physical address).

[0241] [RGB Interpolating Unit]

[0242]FIG. 19 is a block diagram of the RGB interpolating unit 1004shown in FIG. 10.

[0243] Numeral 1901 is a minimum X value generation unit which receivesX coordinates of each of the endpoints of the triangle from the commandanalyzing unit 1001 shown in FIG. 10, obtains a minimum X value, andtransfers the obtained minimum X value to the subtractor 1903.

[0244] Numeral 1902 is a minimum Y value generation unit which receivesY coordinates of each of the endpoints of the triangle from the commandanalyzing unit 1001 shown in FIG. 10, obtains a minimum Y value, andtransfers the obtained minimum Y value to the subtractor 1904.

[0245] The subtractor 1903 receives the horizontal-compensated X valuefrom the horizontal X DDA unit 1005 shown in FIG. 10, and the minimum Xvalue from the minimum X value generation unit 1901 so as to obtain thedifference with respect to the minimum X value for a horizontaldirection of the square surrounding the triangle (as shown in FIG. 28).

[0246] The subtractor 1904 receives the Y value from the horizontal XDDA unit 1005 shown in FIG. 10, and the minimum Y value from the minimumY value generation unit 1902 so as to obtain the difference with respectto the minimum Y value for a vertical direction of the squaresurrounding the triangle (as shown in FIG. 28).

[0247] Numeral 1905 is a divider which receives the smallest unit ofcolor in a horizontal direction DDX (see FIG. 28) from the parameterstorage unit 803 shown in FIG. 8, divides the difference from thesubtractor 1903 with DDX, and transfers the result of the division to a0 decimal point determining unit 1907.

[0248] Numeral 1906 is a divider which receives the smallest unit ofcolor in a vertical direction DDY (see FIG. 28) from the parameterstorage unit 803 shown in FIG. 8, divides the difference from thesubtractor 1904 with DDY, and transfers the result of the division to a0 decimal point determining unit 1908.

[0249] The 0 decimal point determining unit 1907 receives the divisionresult from the divider 1905, confirms that there is no remainder fromthe division, and determines whether the mesh shown in FIG. 28 is beingcrossed over in a horizontal direction.

[0250] The 0 decimal point determining unit 1908 receives the divisionresult from the divider 1906, confirms that there is no remainder fromthe division, and determines whether the mesh shown in FIG. 28 is beingcrossed over in a vertical direction.

[0251] Numeral 1909 is an OR circuit which receives a horizontal drawingsignal from the controller 1010 shown in FIG. 10 and unconditionallygenerates an X direction update signal when the horizontal drawingsignal signifies “START”.

[0252] Numeral 1910 is a register storing the X direction update signalfrom the OR circuit 1909.

[0253] Numeral 1911 is a register storing the Y direction update signalfrom the 0 decimal point determining unit 1908.

[0254] [Image Processing Unit]

[0255]FIG. 20 is a block diagram of the image processing unit 206 shownin FIG. 2.

[0256] Numeral 2001 is a color conversion unit which receives colorinformation for each pixel and band address from the drawing unit 205shown in FIG. 2, generates CMYK data by performing color conversion, andtransfers the generated CMYK data and the band address to a halftoneunit 2002.

[0257] The halftone unit 2002 receives the CMYK data and the bandaddress from the color conversion unit 2001, performs a halftone processthereto, and transfers the result of the halftone process to a memoryarbiter interface 2005.

[0258] Numeral 2003 is a parameter storage unit which temporarily storesparameters of the color conversion unit 2001 and the halftone unit 2002.

[0259] Numeral 2004 is a write address generation unit which generatesaddresses of the CMYK binary band memory spaces (shown in FIG. 5) in themain memory 224 (shown in FIG. 2).

[0260] The memory arbiter 2005 serves as an interface with respect tothe memory arbiter 203 (shown in FIG. 2), and writes halftoned data tothe main memory 224 (shown in FIG. 2) in accordance with the addressesfrom the write address generation unit 2004.

[0261] Numeral 2006 is a controller which entirely controls the imageprocessing unit 206.

[0262] [Process Flow of Image Processing Unit]

[0263]FIG. 21 shows a process flow of an image processing unit accordingto an embodiment of the present invention.

[0264] Step S2101: Set color conversion table for color conversion unit.

[0265] Step S2102: Set respective start point addresses of CMYK bandmemory space of the main memory to the parameter storage unit.

[0266] Step S2103: Set threshold size of halftone unit.

[0267] Step S2104: Set threshold of halftone unit.

[0268] Step S2105: Receive color information and memory address from thedrawing unit.

[0269] Step S2106: Conduct color conversion.

[0270] Step S2107: Conduct halftone process (halftoning).

[0271] Step S2108: Withdraw from loop after all pixels are processed.

[0272] [Color Conversion Unit]

[0273]FIG. 22 is a block diagram of the color conversion unit 2001 shownin FIG. 20.

[0274] Numeral 2201 is a grid point selection unit which receives imagedata (RGB) from the drawing unit 205 shown in FIG. 2, divides therespective R, G, B components into N BIT upper image data and 8-N BITlower image data, changes the N BIT upper image data into HR, HG, HB andthe 8-N BIT lower image data into DR, DG, DB, obtains TYPE bydetermining which of the six tetrahedrons of a cube (formed of 8 gridpoints) should HR, HG, HB, DR, DG, DB belong to, and transfers HR, HG,HB, TYPE to a grid point address generation unit 2204 and DR, DG, DB toa grid point interpolating unit 2202.

[0275] The grid point interpolating unit 2202 obtains C,M,Y,K data byinterpolating in accordance with four interpolated CMYK grid points of atetrahedron from a data extracting unit 2205 and DR, DG, DB of the gridpoint selection unit 2201.

[0276] Numeral 2203 is a color conversion table memory which stores gridpoint information in a format shown in FIG. 24, receives grid pointaddress from the grid point address generation unit 2204, and transfersthe grid point information to the data extracting unit 2205.

[0277] The grid point address generation unit 2204 obtains the gridpoint addresses of the color conversion table 2203 in accordance withHR, HG, HB, DR, DG, DB and TYPE from the grid point selection unit 2201.

[0278] The data extracting unit 2205 extracting four parameters from thegrid point data of the color conversion table memory 2203 forinterpolating with the grid point interpolating unit 2202.

[0279] [Process Flow of Color Conversion Unit]

[0280]FIG. 23 shows a process flow of the color conversion unitaccording to an embodiment of the present invention.

[0281] Step S2301: Convert N BIT upper image (RGB) data included theimage (RGB) data input to the grid point selection unit 2201 (shown inFIG. 22) into HR, HG, HB, and convert (8-N) lower image (RGB) dataincluded in the image (RGB) data input to the grid point selection unit2201 (shown in FIG. 22) into DR, DG, DB.

[0282] Step S2302: Obtain TYPE from HR, HG, HB obtained from the gridpoint selection unit 2201 (shown in FIG. 22).

[0283] Step S2303: Obtain grid point address from the grid point addressgeneration unit 2204 (shown in FIG. 22).

[0284] Step S2304: Read grid point data from the color conversion tablememory 2203 (shown in FIG. 23).

[0285] Step S2305: Obtain C,M,Y,K data by interpolating grid point datawith the grid point interpolating unit 2202 (shown in FIG. 22).

[0286] [Halftone Unit]

[0287]FIG. 24 is a block diagram of the halftone unit 2002 shown in FIG.20.

[0288] Numeral 2401 is an address generation unit which receives athreshold size and generates an address of a threshold matrix storageunit 2402.

[0289] The threshold matrix storage unit 2402 stores respectivethreshold matrixes.

[0290] Numeral 2403 is a data distribution unit which receives thresholdvalues of C,M,Y,K from the threshold matrix storage unit 2402, anddistributes the respective threshold values to comparing units 2404through 2407.

[0291] The comparing unit 2404 receives and compares C threshold datafrom the data distribution unit 2403 and the C pixel data from the colorconversion unit 2001 (shown in FIG. 20), to thereby generate C halftoneddata.

[0292] The comparing unit 2405 receives and compares M threshold datafrom the data distribution unit 2403 and the M pixel data from the colorconversion unit 2001 (shown in FIG. 20), to thereby generate M halftoneddata.

[0293] The comparing unit 2406 receives and compares Y threshold datafrom the data distribution unit 2403 and the Y pixel data from the colorconversion unit 2001 (shown in FIG. 20), to thereby generate Y halftoneddata.

[0294] The comparing unit 2407 receives and compares K threshold datafrom the data distribution unit 2403 and the K pixel data from the colorconversion unit 2001 (shown in FIG. 20), to thereby generate K halftoneddata.

[0295] Numeral 2408 is a C fixed length data generation unit whichsuccessively receives C halftoned data from the comparing unit 2404 andconverts the halftoned data to fixed length data.

[0296] Numeral 2409 is an M fixed length data generation unit whichsuccessively receives M halftoned data from the comparing unit 2405 andconverts the halftoned data to fixed length data.

[0297] Numeral 2410 is a Y fixed length data generation unit whichsuccessively receives Y halftoned data from the comparing unit 2406 andconverts the halftoned data to fixed length data.

[0298] Numeral 2411 is a K fixed length data generation unit whichsuccessively receives K halftoned data from the comparing unit 2407 andconverts the halftoned data to fixed length data.

[0299] Numeral 2412 is a C FIFO which receives and temporarily storesdata from the C fixed length data generation unit 2408.

[0300] Numeral 2413 is an M FIFO which receives and temporarily storesdata from the M fixed length data generation unit 2409.

[0301] Numeral 2414 is a Y FIFO which receives and temporarily storesdata from the Y fixed length data generation unit 2410.

[0302] Numeral 2415 is a K FIFO which receives and temporarily storesdata from the K fixed length data generation unit 2411.

[0303] Numeral 2416 is an MUX which receives data from respective FIFO,successively selects and transfers the data to the memory arbiterinterface 2005 (shown in FIG. 20).

[0304] Numeral 2418 is a CMYK address generation unit which adds therespective C,M,Y,K start point addresses to the physical addresses (headaddresses) from the color conversion unit 2001 (shown in FIG. 20), tothereby obtain respective C,M,Y,K head addresses and transfer theobtained addresses to an MUX 2419.

[0305] The MUX 2419 selects head addresses of the halftoned image data,which are to be written to the main memory, from the respective C,M,Y,Khead addresses, and transfers the selected addresses to the writeaddress generation unit 2004 (shown in FIG. 20).

[0306] [Process Flow of Halftone Unit]

[0307]FIG. 25 shows a processing flow of the halftone unit according toan embodiment of the present invention.

[0308] Step S2501: Compare CMYK threshold data with CMYK pixel data andbinarize.

[0309] Step S2502: Add binarized CMYK data to fixed length data.

[0310] Step S2503: Determine whether data is expanded to fixed lengthdata.

[0311] Step S2504: Write CMYK fixed length data to FIFO.

[0312] Step S2505: Count up dither address in horizontal direction.

[0313] Step S2506: Determine whether dither address in the horizontaldirection exceeds the size of the horizontal direction.

[0314] Step S2507: Clear dither address in the horizontal direction.

[0315] Step S2508: Determine whether halftoning (halftone process) forall pixels of horizontal line is completed.

[0316] Step S2509: Count up dither address in the vertical direction.

[0317] Step S2510: Determine whether halftoning (halftone process) forall pixels of all lines is completed.

[0318]FIG. 26 is a block diagram of the fixed length data generationunit 2408 shown in FIG. 24.

[0319] Numeral 2601 is a shifter which receives binary data from thecomparing unit 2404 (shown in FIG. 24) and shifts the binary data to anextent of a value obtained from a register 2606 (shown in FIG. 26), andtransfers the shifted binary data to an OR unit 2602.

[0320] The OR unit 2602 performs OR processing to the shifted binarydata from the shifter 2601, and transfers the OR processed data to aregister 2604.

[0321] Numeral 2603 is a register which stores binary data that has beenOR processed and added in the OR unit 2602.

[0322] The register 2604 stores data that has reached a fixed length.

[0323] Numeral 2605 is an adder which adds “1” whenever receiving binarydata from the comparing unit 2404 (shown in FIG. 24).

[0324] The register 2606 stores shift value.

[0325] Although the aforementioned example describes a case where eachendpoint of a gradient fill is interpolated with RGB color, the presentinvention may also be applied to a case of CMY, CMYK or Lab.

[0326] Furthermore, the present invention may be applied to a case ofblack and white where a single vector of gradation may be employedinstead of three vectors as in the case of RGB.

[0327] Further, the present invention is not limited to theseembodiments, but various variations and modifications may be madewithout departing from the scope of the present invention.

[0328] The present application is based on Japanese Priority ApplicationNo. 2003-017901 filed on Jan. 27, 2003, with the Japanese Patent Office,the entire contents of which are hereby incorporated by reference.

What is claimed is:
 1. An image processing apparatus comprising: acommand analyzing unit obtaining color information of each endpoint ofan object by analyzing a drawing command; a draw processing unitobtaining the color information of successive scanned points inside theobject through incremental interpolation of the color information,thereby successively producing the color information for an entirety ofthe object; and an image processing unit processing the colorinformation outputted by the draw processing unit.
 2. The imageprocessing apparatus as claimed in claim 1, wherein the draw processingunit includes: a setup unit obtaining differential coefficients of thecolor information in horizontal and vertical directions of the object,with a plane equation of the object with respect to the colorinformation of each endpoint of the object; a start point computing unitobtaining X-Y coordinates and the color information of a start pointsituated on a left or right side of the object and on a given horizontalline by referring to said each end point and the differentialcoefficients; and a horizontal color information interpolating unitinterpolating color information along the given horizontal line inaccordance with the X-Y coordinates and the color information of thestart point and the differential coefficients in the horizontaldirection.
 3. The image processing apparatus as claimed in claim 2,wherein the setup unit computes respective color informationcorresponding to said each endpoint in parallel.
 4. The image processingapparatus as claimed in claim 2, wherein the start point computing unitincludes: a vertical X value interpolating unit interpolating an X valuein the vertical direction by referring to said each end point; and avertical color information interpolating unit interpolating colorinformation in the vertical direction by referring to said each endpoint.
 5. The image processing apparatus as claimed in claim 2, whereinthe horizontal color information interpolating unit interpolatesrespective color information corresponding to the color informationobtained by the start point computing unit, in parallel.
 6. The imageprocessing apparatus as claimed in claim 2, wherein the draw processingunit further includes a color information interpolating unit controllingchange of color by interpolating color in horizontal and verticaldirections in accordance with a mesh, which is shaped as a squaresurrounding the object and is divided into minimal color lengths invertical and horizontal directions.
 7. The image processing apparatus asclaimed in claim 1, wherein the image processing unit includes a colorconversion unit converting color information obtained from the drawprocessing unit.
 8. The image processing apparatus as claimed in claim7, wherein the image processing unit includes a halftone unit halftoningthe color information converted in the color conversion unit.
 9. Theimage processing apparatus as claimed in claim 8, wherein the halftoneunit includes a fixed length data generation unit converting thehalftoned color information into word length for a band data storageunit.
 10. An image processing method comprising the steps of: a)obtaining color information of each endpoint of an object by analyzing adrawing command; b) obtaining the color information of successivescanned points inside the object through incremental interpolation ofthe color information, thereby successively producing the colorinformation for an entirety of the object; and c) processing the colorinformation outputted in step b).
 11. The image processing method asclaimed in claim 1, wherein step b) includes the steps of: d) obtainingdifferential coefficients of the color information in horizontal andvertical directions of the object, with a plane equation of the objectwith respect to the color information of each endpoint of the object; e)obtaining X-Y coordinates and the color information of a start pointsituated on a left or right side of the object and on a given horizontalline by referring to said each end point and the differentialcoefficients and f) interpolating unit interpolating color informationalong the given horizontal line in accordance with the X-Y coordinatesand the color information of the start point and the differentialcoefficients in the horizontal direction.
 12. The image processingmethod as claimed in claim 11, wherein respective color informationcorresponding to said each endpoint is computed in parallel in step d).13. The image processing method as claimed in claim 11, wherein step e)includes the steps of: g) interpolating an X value in the verticaldirection by referring to said each end point; and h) interpolatingcolor information in the vertical direction by referring to said eachend point.
 14. The image processing method as claimed in claim 11,wherein respective color information corresponding to the colorinformation obtained in step e), is interpolated in parallel.
 15. Theimage processing method as claimed in claim 11, wherein step b) furtherincludes a step of: i) controlling change of color by interpolatingcolor in horizontal and vertical directions in accordance with a mesh,which is shaped as a square surrounding the object and is divided intominimal color lengths in vertical and horizontal directions.
 16. Theimage processing method as claimed in claim 10, wherein step c) includesa step of: j) converting color information obtained in step b).
 17. Theimage processing method as claimed in claim 16, wherein step c) includesa step of: k) halftoning the color information converted in step j). 18.The image processing method as claimed in claim 17, wherein step k)includes a step of: l) converting the halftoned color information intoword length for a step of storing band data.
 19. An image processingprogram comprising the functions of: a) obtaining color information ofeach endpoint of an object by analyzing a drawing command; b) obtainingthe color information of successive scanned points inside the objectthrough incremental interpolation of the color information, therebysuccessively producing the color information for an entirety of theobject; and c) processing the color information outputted in functionb).
 20. The image processing program as claimed in claim 19, whereinfunction b) includes the functions of: d) obtaining differentialcoefficients of the color information in horizontal and verticaldirections of the object, with a plane equation of the object withrespect to the color information of each endpoint of the object; e)obtaining X-Y coordinates and the color information of a start pointsituated on a left or right side of the object and on a given horizontalline by referring to said each end point and the differentialcoefficients; and f) interpolating unit interpolating color informationalong the given horizontal line in accordance with the X-Y coordinatesand the color information of the start point and the differentialcoefficients in the horizontal direction.
 21. The image processingprogram as claimed in claim 20, wherein respective color informationcorresponding to said each endpoint is computed in parallel in functiond).
 22. The image processing program as claimed in claim 20, whereinfunction e) includes the functions of: g) interpolating an X value inthe vertical direction by referring to said each end point; and h)interpolating color information in the vertical direction by referringto said each end point.
 23. The image processing program as claimed inclaim 20, wherein respective color information corresponding to thecolor information obtained in function e), is interpolated in parallel.24. The image processing program as claimed in claim 20, whereinfunction b) further includes a function of: i) controlling change ofcolor by interpolating color in horizontal and vertical directions inaccordance with a mesh, which is shaped as a square surrounding theobject and is divided into minimal color lengths in vertical andhorizontal directions.
 25. The image processing program as claimed inclaim 19, wherein function c) includes a function of: j) convertingcolor information obtained in function b).
 26. The image processingprogram as claimed in claim 25, wherein function c) includes a functionof: k) halftoning the color information converted in function j). 27.The image processing program as claimed in claim 26, wherein function k)includes a function of: l) converting the halftoned color informationinto word length for a function of storing band data.